ST8 REGISTER SET The following is a list of the ST8 registers used by ASST8: a - 8-bit accumulator xl,yl - LSB of index registers xh,yh - MSB of index registers x,y - 16-Bit index registers sp - 16-bit stack pointer cc - 8-bit condition code register ST8 INSTRUCTION SET The following list specifies the format for each addressing mode supported by ASST8: reg register addressing (a,x,xl,xh,y,yl,yh,sp,cc) #data immediate data *saddr 8-bit zero page addressing 0x00 <= saddr <= 0xFF laddr 16-bit addressing 0x0000 <= laddr <= 0xFFFF eaddr 24-bit addressing 0x000000 <= eaddr <= 0xFFFFFF (x) register indirect addressing (*sofst,r) short indexed (r = x,y,sp) (sofst,r).b (lofst,r).w long indexed (r = x,y) (eofst,r).e extended indexed (r = x,y) eofst is a lofst value, i.e. a 16-bit value where (eofst,r).e points to a 24-bit address (ofst,r) for the ldf instruction the (eofst,r).e mode is selected else (ofst,r) if ofst is relocatable or an external value then the (lofst,r).w mode is selected by default else (ofst,r) if ofst is a locally defined constant then the (sofst,r).b mode is selected when 0x00 <= ofst <= 0xFF else the (lofst,r).w mode is selected Instructions supporting only a single form will use the appropriate form but will report an error. [*saddr] short indirect [saddr].b [laddr].w long indexed [eaddr].e extended indexed [addr] for the callf, jpf, and ldf instructions the [eaddr].e mode is selected else [addr] if addr is relocatable or an external value then the [laddr].w mode is selected by default else [addr] if addr is a locally defined constant then the [saddr].b mode is selected when 0x00 <= addr <= 0xFF else the [laddr].w mode is selected Instructions supporting only a single form will use the appropriate form but will report an error. ([*saddr],r) short indirect indexed ([saddr].b,r) (r = x,y) ([saddr],r).b ([laddr].w,r) long indirect indexed ([laddr],r).w (r = x,y) ([eaddr].e,r) extended indirect indexed ([eaddr],r).e (r = x,y) ([addr],r) for the ldf instruction the ([eaddr],r).e mode is selected else ([addr],r) if addr is relocatable or an external value then the ([laddr],r).w mode is selected by default else ([addr],r) if addr is a locally defined constant then the ([saddr],r).b mode is selected when 0x00 <= addr <= 0xFF else the ([laddr],r).w mode is selected Instructions supporting only a single form will use the appropriate form but will report an error. label pc-relative branch addressing The terms data, saddr, laddr, eaddr, addr, sofst, lofst, eofst, ofst, and label may all be expressions. Note that not all addressing modes are valid with every in- struction, refer to the ST8 technical data for valid modes. The following tables list all ST8 mnemonics recognized by the ASST8 assembler. The designation [] refers to a required ad- dressing mode argument. Inherent Instructions nop trap wfi wfi halt ret retf iret sim rim scf rcf rvf ccf Conditional Branch Instructions jra label jrt label jrf label jrugt label jrule label jruge label jrult label jrnc label jrc label jrne label jreq label jrnv label jrv label jrpl label jrmi label jrsgt label jrsle label jrsge label jrslt label jrnh label jrh label jrnm label jrm label jril label jrih label Bit Test and Branch Instructions btjt laddr,#,label btjf laddr,#,label Bit Manipulation Instructions bccm laddr,# bcpl laddr,# bset laddr,# bres laddr,# Single Operand Instructions neg [] cpl [] srl [] rrc [] sra [] rlc [] sll [] sla [] dec [] inc [] tnz [] swap [] clr [] negw reg cplw reg srlw reg rrcw reg sraw reg rlcw reg sllw reg slaw reg decw reg incw reg tnzw reg swapw reg clrw reg pop reg push reg Double Operand Instructions add a,[] adc a,[] and a,[] bcp a,[] cp a,[] or a,[] sbc a,[] sub a,[] xor a,[] add sp,# sub sp,# addw reg,[] subw reg,[] cpw reg,[] mul x,a mul y,a div x,a div y,a divw x,y exg a,reg exg a,laddr exgw x,y rrwa x,a rrwa y,a rlwa x,a rlwa y,a ld [],[] ldf a,[] ldf [],a ldw reg,[] ldw [],reg mov saddr,saddr mov laddr,laddr mov laddr,# Call to Subroutine and Jump Instructions call [] jp [] callf eaddr callf [eaddr].e jpf eaddr jpf [eaddr].e callr label
... Exit the ASxxxx Documentation